emacs.git
2 years agoFix CheckJNI crash on Android 2.2
Po Lu [Tue, 12 Mar 2024 04:24:59 +0000 (12:24 +0800)]
Fix CheckJNI crash on Android 2.2

* src/androidfns.c (syms_of_androidfns_for_pdumper): Don't free
local reference to script name if nonexistent.

2 years ago; Check in missing change to AndroidManifest.xml.in
Po Lu [Tue, 12 Mar 2024 02:46:00 +0000 (10:46 +0800)]
; Check in missing change to AndroidManifest.xml.in

* java/AndroidManifest.xml.in: Register CancellationReceiver.

2 years ago(gnus-convert-old-newsrc): Remove ancient converters
Stefan Monnier [Tue, 12 Mar 2024 01:51:29 +0000 (21:51 -0400)]
(gnus-convert-old-newsrc): Remove ancient converters

* lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): Remove converters
from 2004 and before.
* lisp/gnus/legacy-gnus-agent.el: Delete file.

2 years agoResolve inconsistency between Android and XDG notifications
Po Lu [Tue, 12 Mar 2024 01:58:51 +0000 (09:58 +0800)]
Resolve inconsistency between Android and XDG notifications

* doc/lispref/os.texi (Desktop Notifications):

* src/androidselect.c (android_notifications_notify_1)
(Fandroid_notifications_notify, android_notification_action)
(syms_of_androidselect): Rename `:on-cancel' to `:on-close'.

2 years ago; Fix omission from last change
Po Lu [Tue, 12 Mar 2024 01:54:54 +0000 (09:54 +0800)]
; Fix omission from last change

* src/androidselect.c (android_notification_deleted): Adjust for
changed notification list format.

2 years agoImplement notification residency on Android
Po Lu [Tue, 12 Mar 2024 01:48:53 +0000 (09:48 +0800)]
Implement notification residency on Android

* doc/lispref/os.texi (Desktop Notifications): Document support
for `:resident'.

* java/org/gnu/emacs/EmacsService.java (cancelNotification):

* src/android.c (android_init_emacs_service):

* src/android.h (struct android_emacs_service): New function.

* src/androidselect.c (android_notifications_notify_1)
(Fandroid_notifications_notify): New parameter QCresident; save
it within notification lists.
(android_notification_deleted, android_notification_action):
Adjust for changes to the format of notification lists and
cancel non-resident notifications when an action is selected.
(syms_of_androidselect): <QCresident>: New symbol.

2 years agoFix notification cancellation detection on Android
Po Lu [Tue, 12 Mar 2024 00:51:52 +0000 (08:51 +0800)]
Fix notification cancellation detection on Android

* java/org/gnu/emacs/EmacsDesktopNotification.java (display1):
Don't specify FLAG_ONE_SHOT in cancel intents.

2 years agoImplement notification callbacks on Android
Po Lu [Mon, 11 Mar 2024 13:40:47 +0000 (21:40 +0800)]
Implement notification callbacks on Android

* doc/lispref/os.texi (Desktop Notifications): Document that
:on-cancel, :on-action and :actions are now supported on
Android.

* java/org/gnu/emacs/EmacsActivity.java (onNewIntent): New
function.

* java/org/gnu/emacs/EmacsDesktopNotification.java
(NOTIFICATION_ACTION, NOTIFICATION_TAG, NOTIFICATION_DISMISSED):
New constants.  <actions, titles>: New fields.
(insertActions): New function.
(display1, display): Insert actions on Jelly Bean and up, and
arrange to be notified when the notification is dismissed.
(CancellationReceiver): New class.

* java/org/gnu/emacs/EmacsNative.java (sendNotificationDeleted)
(sendNotificationAction): New functions.

* src/android.c (sendDndDrag, sendDndUri, sendDndText): Correct
return types.
(sendNotificationDeleted, sendNotificationAction)
(android_exception_check_5, android_exception_check_6): New
functions.

* src/android.h:

* src/androidgui.h (struct android_notification_event): New
structure.
(union android_event): New member for notification events.

* src/androidselect.c (android_init_emacs_desktop_notification):
Update JNI signatures.
(android_notifications_notify_1, Fandroid_notifications_notify):
New arguments ACTIONS, ACTION_CB and CANCEL_CB.  Convert and
record them as appropriate.
(android_notification_deleted, android_notification_action): New
functions.
(syms_of_androidselect): Prepare a hash table of outstanding
notifications.
<QCactions, QCon_action, QCon_cancel> New defsyms.

* src/androidterm.c (handle_one_android_event)
<ANDROID_NOTIFICATION_DELETED>
<ANDROID_NOTIFICATION_ACTION>: Dispatch event contents to
androidselect.c for processing.

* src/androidterm.h:

* src/androidvfs.c (java_string_class): Export.

* src/keyboard.c (kbd_buffer_get_event) <NOTIFICATION_EVENT>:
Call callback specified by the event.

* src/termhooks.h (enum event_kind) [HAVE_ANDROID]: New
enum NOTIFICATION_EVENT.

2 years ago; Fix error message in last change to bindat.el
Basil L. Contovounesios [Mon, 11 Mar 2024 10:16:20 +0000 (11:16 +0100)]
; Fix error message in last change to bindat.el

Remove trailing period as per "(elisp) Error Symbols".

Relates to the following discussion:
https://lists.gnu.org/r/emacs-devel/2023-10/msg00473.html
https://lists.gnu.org/r/emacs-devel/2024-03/msg00340.html

2 years agoChange bare-symbol back to match intent
Paul Eggert [Mon, 11 Mar 2024 07:03:39 +0000 (00:03 -0700)]
Change bare-symbol back to match intent

Also, attempt to document the intent better.
Problem reported by Alan Mackenzie (Bug#69684).
* src/data.c (Fbare_symbol): Do not signal if the SYM is a symbol
with position and symbols-with-pos-enabled is nil.  Instead,
ignore symbols-with-pos-enabled, as that was the intent.
* test/src/data-tests.el (data-tests-bare-symbol):
New test, to help prevent this bug from reoccurring.

2 years agoImprove pp-emacs-lisp-code backquote form printing
Michael Heerdegen [Sun, 18 Feb 2024 00:55:54 +0000 (01:55 +0100)]
Improve pp-emacs-lisp-code backquote form printing

* lisp/emacs-lisp/pp.el (pp--quoted-or-unquoted-form-p): New helper
function.
(pp--insert-lisp): Take care of quoted, backquoted and
unquoted expressions; print using an recursive call.
(pp--format-list): Exclude more cases from printing as a function call
by default.  Print lists whose second-last element is an (un)quoting
symbol using dotted list syntax; e.g. (a b . ,c) instead of (a b \, c).

2 years agoFix pp-emacs-lisp-code printing of symbols
Michael Heerdegen [Sun, 18 Feb 2024 01:48:15 +0000 (02:48 +0100)]
Fix pp-emacs-lisp-code printing of symbols

* lisp/emacs-lisp/pp.el (pp--insert-lisp): Print symbols
readably (bug#69168).

2 years ago(bindat--unpack-item): Sanitize vector length
Petteri Hintsanen [Mon, 11 Mar 2024 03:30:11 +0000 (23:30 -0400)]
(bindat--unpack-item): Sanitize vector length

Copyright-paperwork-exempt: yes

* lisp/emacs-lisp/bindat.el (bindat--unpack-item): Sanitize vector length

2 years agoAvoid dependency on nonexisting target in lispref makefile
Andreas Schwab [Sun, 10 Mar 2024 22:02:26 +0000 (23:02 +0100)]
Avoid dependency on nonexisting target in lispref makefile

* doc/lispref/Makefile.in (auxfiles): Change target into a
variable.
($(buildinfodir)/elisp.info): Adjust dependency.
(infoclean): Clean $(auxfiles).

2 years agoLet 'browse-url-interactive-arg' return more values for NEW-WINDOW-FLAG
Jim Porter [Fri, 8 Mar 2024 05:55:45 +0000 (21:55 -0800)]
Let 'browse-url-interactive-arg' return more values for NEW-WINDOW-FLAG

Previously it always returned t or nil for NEW-WINDOW-FLAG, but now it
can return the actual prefix arg when appropriate.  This lets functions
for 'browse-url-browser-function' consult it and do more things than
just open a new window or not (for example, you could use "C--" as the
prefix arg to do something special in a custom function).

* lisp/net/browse-url.el (browse-url-interactive-arg): Use 'xor' to
adjust the value of 'current-prefix-arg'.
(browse-url): Update docstring.

2 years agosyncdoc-type-hierarchy.el: Sort and remove `comp` dependency
Stefan Monnier [Sun, 10 Mar 2024 19:12:00 +0000 (15:12 -0400)]
syncdoc-type-hierarchy.el: Sort and remove `comp` dependency

* admin/syncdoc-type-hierarchy.el: Delay loading `org-table` so as
not to "pollute" the table with Org-specific types.
(syncdoc-all-types): Sort the types topologically from the root.
(syncdoc-hierarchy): Use `cl--class-parents` instead if
`comp--direct-supertypes` so we don't depend on `comp-cstr`.
(syncdoc-make-type-table): Sort the table so supertypes always come before
their subtypes.
(syncdoc-make-type-table): Require `org-table` here.

* doc/lispref/elisp_type_hierarchy.jpg:
* doc/lispref/elisp_type_hierarchy.txt: Refresh.

2 years ago* src/keyboard.c (read_key_sequence): Remove MSVC compatibility hack
Tim Ruffing [Sat, 9 Mar 2024 11:15:22 +0000 (12:15 +0100)]
* src/keyboard.c (read_key_sequence): Remove MSVC compatibility hack

2 years ago* lisp/calc/calc-prog.el: Switch to new method of detecting end of kbd macro
Tim Ruffing [Sat, 9 Mar 2024 11:29:39 +0000 (12:29 +0100)]
* lisp/calc/calc-prog.el: Switch to new method of detecting end of kbd macro

'read-char' will no longer return -1 as of
ac82baea1c41ec974ad49f2861ae6c06bda2b4ed. This switches to a cleaner
method of detecting whether the end of a keyboard macro has been
reached.

* lisp/calc/calc-prog.el (calc--at-end-of-kmacro-p): New function.
(calc-kbd-skip-to-else-if): Use the function.

Co-authored-by: Stefan Monnier <monnier@iro.umontreal.ca>
2 years agoRemove workarounds for solved 'read-event' bug
Tim Ruffing [Wed, 27 Dec 2023 13:32:09 +0000 (14:32 +0100)]
Remove workarounds for solved 'read-event' bug

* lisp/subr.el (read-char-choice-with-read-key):
* lisp/net/dbus.el (dbus-call-method):
Remove workarounds for the bug fixed in the previous commit
ac82baea1c41ec974ad49f2861ae6c06bda2b4ed, where 'read-event',
'read-char' and 'read-char-exclusively' could return wrongly -1.
In the case of lisp/dbus.el, this reverts commit
7177393826c73c87ffe9b428f0e5edae244d7a98.

2 years agoContinue reading in 'read-event' etc. at the end of a keyboard macro
Tim Ruffing [Wed, 27 Dec 2023 13:32:09 +0000 (14:32 +0100)]
Continue reading in 'read-event' etc. at the end of a keyboard macro

This fixes a bug that could make 'read-event', 'read-char', and
'read-char-exclusive' erroneously return -1, an internal magic return
value of 'read_char' leaked from C to lisp. Instead of returning -1, the
aforementioned lisp functions now transparently continue reading
available input (e.g., from the keyboard) when reaching the end of a
keyboard macro.

* src/keyboard.c (read_char, read_key_sequence): Move handling
of the end of a keyboard macro from 'read_char' to its caller
'read_key_sequence', which is the only caller that can
meaningfully deal with this case.
* src/macros.c (Fexecute_kbd_macro): Document how the end of keyboard
macro is processed.
* etc/NEWS: Announce this change.

2 years ago* src/keyboard.c (requeued_events_pending_p): New function
Tim Ruffing [Wed, 27 Dec 2023 13:29:34 +0000 (14:29 +0100)]
* src/keyboard.c (requeued_events_pending_p): New function

* src/keyboard.c, src/keyboard.h (requeued_events_pending_p): Add
function 'requeued_events_pending_p' (whose name was made available in
the previous commit). As opposed to the previous function with the same
name, the new function covers both command and other events.
* src/keyboard.c (Finput_pending_p): Use the new function.

2 years ago* src/keyboard.c (requeued_events_pending_p): Improve name and fix comment
Tim Ruffing [Wed, 27 Dec 2023 13:29:34 +0000 (14:29 +0100)]
* src/keyboard.c (requeued_events_pending_p): Improve name and fix comment

* src/keyboard.c, src/keyboard.h (requeued_events_pending_p): Rename to
'requeued_command_events_pending_p' to clarify that the function covers
only command events. Fix wrong comment that claimed that the function
was unused.
* src/process.c (wait_reading_process_output): Update caller to use the
new name.

2 years agoExtract check for end of macro to function
Tim Ruffing [Wed, 27 Dec 2023 13:26:26 +0000 (14:26 +0100)]
Extract check for end of macro to function

* src/macros.h (at_end_of_macro_p):
* src/macros.c (at_end_of_macro_p):
New function.
* src/keyboard.c (read_char): Use the new function.

2 years agoFix faulty decoded-time adjustment in erc-stamp
F. Jason Park [Sun, 10 Mar 2024 13:08:30 +0000 (06:08 -0700)]
Fix faulty decoded-time adjustment in erc-stamp

* lisp/erc/erc-stamp.el (erc-stamp--lr-date-on-pre-modify): Remove
disruptive assertion for now.
(erc-stamp--time-as-day): Attempt to fix date being rewound by a whole
day when daylight saving time is in effect.  Do this by forcing the
`dst' slot of the `decoded-time' object to -1 and the `zone' to nil.

2 years agoRedefine erc-spoiler-face to indicate revealed text
F. Moukayed [Fri, 8 Mar 2024 08:39:03 +0000 (08:39 +0000)]
Redefine erc-spoiler-face to indicate revealed text

* lisp/erc/erc-goodies.el (erc-spoiler-face): Redefine role and redo
definition to inherit from `erc-control-default-face'.
(erc-controls-propertize): Include `cursor-face' in the applied hover
properties for spoiler text, and ensure they aren't clobbered by other
built-in modules, like `button'.
(Bug#69597)

Copyright-paperwork-exempt: yes

2 years agoMake important text props more resilient in ERC
F. Jason Park [Fri, 8 Mar 2024 05:53:23 +0000 (21:53 -0800)]
Make important text props more resilient in ERC

* lisp/erc/erc-button.el (erc-button-remove-old-buttons): Restore
original `mouse-face' values in areas marked as important after
clobbering.
* lisp/erc/erc.el (erc--reserve-important-text-props): New function.
(erc--restore-important-text-props): New function.
* test/lisp/erc/erc-tests.el (erc--restore-important-text-props): New
test.
(Bug#69597)

2 years agoLeverage inverse-video for erc-inverse-face
F. Jason Park [Fri, 8 Mar 2024 05:53:11 +0000 (21:53 -0800)]
Leverage inverse-video for erc-inverse-face

* lisp/erc/erc-goodies.el (erc-inverse-face): Specify face attribute
`:inverse-video' (née :reverse-video) to swap foreground and
background colors over affected intervals, as per
https://modern.ircdocs.horse/formatting#reverse-color.
(erc-control-default-fg erc-control-default-bg): New faces for IRC
color-code number 99.  Ignore the ERC convention of prefixing
control-code-derived faces with "fg:" and "bg:" because it doesn't
comport with modern sensibilities, which demand identifiers normally
be namespaced.
(erc-get-bg-color-face, erc-get-fg-color-face): Return new, dedicated
faces instead of `default', and don't nest them in a list.
* test/lisp/erc/erc-goodies-tests.el
(erc-controls-highlight--inverse): Redo completely, asserting behavior
described in the spec linked to above.
(erc-controls-highlight--spoilers): New test based on the body of the
old `erc-controls-highlight--inverse', except without shadowing
`erc-insert-modify-hook' with an unrealistic, idealized value.  Adjust
expected buffer state to reflect the new role of
`erc-spoiler-face'.  (Bug#69597)

2 years ago; * java/org/gnu/emacs/EmacsPreferencesActivity.java: Fix commentary.
Po Lu [Sun, 10 Mar 2024 02:37:14 +0000 (10:37 +0800)]
; * java/org/gnu/emacs/EmacsPreferencesActivity.java: Fix commentary.

2 years agoMerge branch 'make-ts-derived-modes'
Stefan Monnier [Sat, 9 Mar 2024 15:38:10 +0000 (10:38 -0500)]
Merge branch 'make-ts-derived-modes'

2 years ago(eglot-server-programs): Comment and whitespace only change
Stefan Monnier [Fri, 8 Mar 2024 17:39:59 +0000 (12:39 -0500)]
(eglot-server-programs): Comment and whitespace only change

* lisp/progmodes/eglot.el (eglot-server-programs): Add comment.
Make the definition fit into 80 columns.

2 years agoSimplify mode-indexed tables in packages
Stefan Monnier [Fri, 8 Mar 2024 17:50:33 +0000 (12:50 -0500)]
Simplify mode-indexed tables in packages

Now that we use extra-parents to group alternative major modes,
some tables can be simplified to mention only the group's leader.

* lisp/align.el (align-c++-modes, align-rules-list):
Don't bother listing TS alternatives.
(align-perl-modes): Don't bother listing CPerl alternative.

* lisp/info-look.el (perl-mode): Simplify.

* lisp/cedet/semantic/symref/grep.el (semantic-symref-filepattern-alist):
Don't bother listing TS alternatives.

* lisp/emulation/viper.el (viper-vi-state-mode-list): Don't bother
listing CPerl alternative.

* lisp/progmodes/gud.el (gud-tooltip-activate-mouse-motions-if-enabled):
Take into account the modes hierarchy.
(gud-tooltip-modes): Don't bother listing TS alternatives.

* .dir-locals.el (c-ts-mode): Simplify.

2 years agoAdd non-TS modes as extra parent of TS modes (bug#68246)
Stefan Monnier [Fri, 8 Mar 2024 17:58:11 +0000 (12:58 -0500)]
Add non-TS modes as extra parent of TS modes (bug#68246)

Record the fact that TS modes are alternatives to the non-TS
modes using the new `derived-mode-add-parents` functionality.
Do the same for long standing similar issues with CPerl-mode.

* lisp/textmodes/yaml-ts-mode.el (yaml-ts-mode):
* lisp/textmodes/toml-ts-mode.el (toml-ts-mode):
* lisp/textmodes/html-ts-mode.el (html-ts-mode):
* lisp/textmodes/css-mode.el (css-ts-mode):
* lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode, tsx-ts-mode):
* lisp/progmodes/sh-script.el (bash-ts-mode):
* lisp/progmodes/rust-ts-mode.el (rust-ts-mode):
* lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode):
* lisp/progmodes/python.el (python-ts-mode):
* lisp/progmodes/lua-ts-mode.el (lua-ts-mode):
* lisp/progmodes/json-ts-mode.el (json-ts-mode):
* lisp/progmodes/js.el (js-ts-mode):
* lisp/progmodes/java-ts-mode.el (java-ts-mode):
* lisp/progmodes/heex-ts-mode.el (heex-ts-mode):
* lisp/progmodes/go-ts-mode.el (go-ts-mode, go-mod-ts-mode):
* lisp/progmodes/elixir-ts-mode.el (elixir-ts-mode):
* lisp/progmodes/dockerfile-ts-mode.el (dockerfile-ts-mode):
* lisp/progmodes/csharp-mode.el (csharp-ts-mode):
* lisp/progmodes/cmake-ts-mode.el (cmake-ts-mode):
* lisp/progmodes/c-ts-mode.el (c-ts-mode, c++-ts-mode):
Add non-TS mode as extra parent.

* lisp/progmodes/cperl-mode.el (cperl-mode): Add `perl-mode` as
extra parent.

2 years ago(dir-locals-collect-variables): Avoid spurious safety warnings
Stefan Monnier [Fri, 8 Mar 2024 17:44:38 +0000 (12:44 -0500)]
(dir-locals-collect-variables): Avoid spurious safety warnings

* lisp/files.el (dir-locals-collect-variables): Silence warnings for
extra parents' variables.

2 years agoRun 'syncdoc-update-type-hierarchy'.
Andrea Corallo [Sat, 9 Mar 2024 15:14:14 +0000 (16:14 +0100)]
Run 'syncdoc-update-type-hierarchy'.

* doc/lispref/elisp_type_hierarchy.jpg: Update.
* doc/lispref/elisp_type_hierarchy.txt: Likewise.

2 years ago* 'syncdoc-type-hierarchy.el' update due to recent changes
Andrea Corallo [Sat, 9 Mar 2024 15:13:47 +0000 (16:13 +0100)]
* 'syncdoc-type-hierarchy.el' update due to recent changes

* admin/syncdoc-type-hierarchy.el (syncdoc-all-types): Update.

2 years agoAuto-commit of loaddefs files.
Eli Zaretskii [Sat, 9 Mar 2024 09:24:30 +0000 (04:24 -0500)]
Auto-commit of loaddefs files.

2 years agoMerge from origin/emacs-29
Eli Zaretskii [Sat, 9 Mar 2024 09:18:53 +0000 (04:18 -0500)]
Merge from origin/emacs-29

b9f7a2274f6 ; Improve documentation of 'minibuffer-allow-text-propert...
5ffcca121bb ; Improve documentation of image properties
6e801077ae8 ; * src/composite.c (composition_compute_stop_pos): Add c...

2 years agoEnable stack overflow recovery on Android
Po Lu [Sat, 9 Mar 2024 08:12:40 +0000 (16:12 +0800)]
Enable stack overflow recovery on Android

* src/sysdep.c (handle_sigsegv): Return after restoring the
original signal handler, which should proceed to call debuggerd
to generate a tombstone.
(init_sigsegv): Save the original signal handler on Android, to
be restored after a signal is received.
(init_signals): Call init_sigsegv on Android.

2 years agoFix case-sensitivity in 'complete-tag'
Eli Zaretskii [Sat, 9 Mar 2024 08:09:36 +0000 (10:09 +0200)]
Fix case-sensitivity in 'complete-tag'

* lisp/progmodes/etags.el (complete-tag): Bind
'completion-ignore-case', so that 'completion-in-region' is
affected by it.  This fixes a bug made in 30 Apr 2010, when this
function was refactored to use
'tags-completion-at-point-function'.  Reported by Morgan Willcock
<morgan@ice9.digital>.

2 years agoDo interactive mode tagging for locate.el
Charalampos Mitrodimas [Thu, 7 Mar 2024 18:38:15 +0000 (18:38 +0000)]
Do interactive mode tagging for locate.el

* lisp/locate.el (locate-tags, locate-find-directory)
(locate-find-directory-other-window): Do interactive mode
tagging.  (Bug#69619)

Copyright-paperwork-exempt: yes

2 years ago(eieio--generic-subclass-specializers): Autoload class
Stefan Monnier [Fri, 8 Mar 2024 16:57:22 +0000 (11:57 -0500)]
(eieio--generic-subclass-specializers): Autoload class

* lisp/emacs-lisp/eieio-core.el (eieio--generic-subclass-specializers):
Don't forget to handle autoloaded classes.

2 years agoEIEIO: Fix regession (bug#69631)
Stefan Monnier [Fri, 8 Mar 2024 16:24:18 +0000 (11:24 -0500)]
EIEIO: Fix regession (bug#69631)

Not sure why earlier tests did not catch it, but there are more
places where we bump into problems because `eieio--class-precedence-list`
now returns also non-EIEIO classes.

* lisp/obsolete/eieio-compat.el
(eieio--generic-static-object-generalizer):
* lisp/emacs-lisp/eieio-core.el (eieio--generic-generalizer)
(eieio--generic-subclass-specializers): Handle non-EIEIO parents.

* test/lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el
(eieio-test-method-order-list-7): Adjust test.

2 years agoeieio-core.el: Try and fix bug#69631
Stefan Monnier [Fri, 8 Mar 2024 15:47:01 +0000 (10:47 -0500)]
eieio-core.el: Try and fix bug#69631

* lisp/emacs-lisp/eieio-core.el (eieio--class-precedence-c3)
(eieio--class-precedence-dfs, eieio--class-precedence-bfs): Use
`cl--class-parents` since some of the parents aren't EIEIO classes.

2 years ago* Fix `capitalize` entry in `comp-known-type-specifiers` (bug#69631)
Andrea Corallo [Fri, 8 Mar 2024 13:26:14 +0000 (14:26 +0100)]
* Fix `capitalize` entry in `comp-known-type-specifiers` (bug#69631)

* lisp/emacs-lisp/comp-common.el (comp-known-type-specifiers): Fix
'capitalize' entry.

2 years ago; Improve documentation of 'minibuffer-allow-text-properties'
Eli Zaretskii [Fri, 8 Mar 2024 13:06:37 +0000 (15:06 +0200)]
; Improve documentation of 'minibuffer-allow-text-properties'

* doc/lispref/minibuf.texi (Text from Minibuffer): Document the
default value of 'minibuffer-allow-text-properties'.

2 years agoUpdate android_wc_lookup_string
Po Lu [Fri, 8 Mar 2024 12:47:23 +0000 (20:47 +0800)]
Update android_wc_lookup_string

* src/android.c (android_wc_lookup_string): Don't clear compose
state upon modifier key depress.

2 years agoSimplify type hierarchy operations
Stefan Monnier [Fri, 8 Mar 2024 06:48:59 +0000 (01:48 -0500)]
Simplify type hierarchy operations

Now that built-in types have classes that describe their
relationships exactly like struct/eieio/oclosure classes,
we can the code that navigates that DAG.

* lisp/emacs-lisp/cl-generic.el (cl--generic-struct-tag): Move to
`eieio-core.el`.
(cl--generic-type-specializers): Rename from
`cl--generic-struct-specializers`.  Make it work for any class.
(cl--generic-typeof-generalizer, cl--generic-oclosure-generalizer): Use it.
(cl--generic-struct-generalizer): Delete generalizer.
(cl-generic-generalizers :extra "cl-struct"): Delete method.
(prefill 0 cl--generic-generalizer): Move to after the typeof.
(cl-generic-generalizers :extra "typeof"): Rewrite to use
classes rather than `cl--all-builtin-types`.
(cl-generic--oclosure-specializers): Delete function.

* lisp/emacs-lisp/cl-preloaded.el (cl--direct-supertypes-of-type)
(cl--typeof-types, cl--all-builtin-types): Delete constants.

* lisp/emacs-lisp/comp-cstr.el (comp--typeof-builtin-types):
Delete constant.
(comp--cl-class-hierarchy): Simplify.
(comp--compute-typeof-types): Simplify now that
`comp--cl-class-hierarchy` and `comp--all-classes` work for built-in
types as well.
(comp--direct-supertypes): Just use `cl--class-parents`.
(comp-supertypes): Simplify since typeof-types should now be complete.

* lisp/emacs-lisp/eieio-core.el (eieio-defclass-autoload):
Use `superclasses` argument, so we can find parents before it's loaded.
(eieio--class-precedence-c3, eieio--class-precedence-dfs):
Don't add a `eieio-default-superclass` parent any more.
(eieio--class/struct-parents): Delete function.
(eieio--class-precedence-bfs): Use `eieio--class-parents` instead.
Don't stop when reaching `eieio-default-superclass`.
(cl--generic-struct-tag): Move from `cl-generic.el`.

2 years agoeieio-core.el: Always put a parent in the parents of a class
Stefan Monnier [Thu, 7 Mar 2024 22:45:41 +0000 (17:45 -0500)]
eieio-core.el: Always put a parent in the parents of a class

* lisp/emacs-lisp/eieio-core.el (eieio-defclass-internal):
Always put a parent in the `parents` slot of the class.

* lisp/emacs-lisp/eieio.el (eieio-class-parents): Remove the
`eieio-default-superclass` if it's the only parent.
(child-of-class-p): Handle all classes in the parents.
(eieio-default-superclass): Adjust docstring.

2 years agoMake "parentless" structs inherit from their builtin type
Stefan Monnier [Thu, 7 Mar 2024 21:58:15 +0000 (16:58 -0500)]
Make "parentless" structs inherit from their builtin type

* lisp/emacs-lisp/cl-preloaded.el (cl--struct-register-child):
Register child only in struct parents.
(cl-struct-define): Put the "type" as parent of parentless :type structs.
Copy slots only from struct parent classes.
(cl-structure-object): Set (manually) its parent to `record`
and remove assertion that it has no parents.

2 years ago* lisp/emacs-lisp/oclosure.el (oclosure): Make it a subtype of `function`
Stefan Monnier [Thu, 7 Mar 2024 20:26:12 +0000 (15:26 -0500)]
* lisp/emacs-lisp/oclosure.el (oclosure): Make it a subtype of `function`

2 years agocl-preloaded.el (built-in-class): New type
Stefan Monnier [Wed, 6 Mar 2024 21:32:35 +0000 (16:32 -0500)]
cl-preloaded.el (built-in-class): New type

Add classes describing the built-in types.

* lisp/emacs-lisp/cl-preloaded.el (built-in-class): New type.
(cl--define-built-in-type): New aux macro.
(all built-in types): "Define" them with it.
(cl--builtin-type-p): New aux function.
(cl--struct-name-p): Use it.
(cl--direct-supertypes-of-type, cl--typeof-types, cl--all-builtin-types):
Move the definitions to after the built-in classes are defined,
and rewrite to make use of those classes.

* lisp/emacs-lisp/cl-extra.el (cl-describe-type):
Accept two (unused) optional args, for use with `describe-symbol-backends`.
(describe-symbol-backends): Simplify accordingly and
add ourselves at the end.
(cl--class-children): New function.
(cl--describe-class): Use it.  Also don't show a silly empty list of slots
for the built-in types.

2 years agocomp-cstr.el: Fix a minor error and prepare for upcoming changes
Stefan Monnier [Thu, 7 Mar 2024 21:56:42 +0000 (16:56 -0500)]
comp-cstr.el: Fix a minor error and prepare for upcoming changes

* lisp/emacs-lisp/comp-cstr.el (comp--cl-class-hierarchy): Add `atom`
and `t` only to those types whose "allparents" is clearly not complete.
(comp--compute--pred-type-h): Store the cstr rather than the type
in the hash-table, as expected by `comp--pred-to-cstr`.

2 years agoDeclare 124 new Android permissions
Po Lu [Fri, 8 Mar 2024 02:58:17 +0000 (10:58 +0800)]
Declare 124 new Android permissions

* doc/emacs/android.texi (Android Environment): Document new
permissions and delete recently introduced permissions from the
list for Android 5.1 and earlier.

* java/AndroidManifest.xml.in: Declare 124 new permissions to
enable invoking features they protect from code running inside
Emacs.

2 years ago; perl-mode, cperl-mode: Fix $\" in strings (Bug#69604)
Harald Jörg [Thu, 7 Mar 2024 23:37:36 +0000 (00:37 +0100)]
; perl-mode, cperl-mode: Fix $\" in strings (Bug#69604)

* lisp/progmodes/perl-mode.el (perl-syntax-propertize-function):
Add to syntax-propertize-rules that $ is punctuation in strings.

* lisp/progmodes/cperl-mode.el (cperl-find-pods-heres): capture $\
to catch the edge case of "$\"".  Make $ a punctuation char in
strings and comments.

* test/lisp/progmodes/cperl-mode-tests.el (cperl-test-bug-69604):
New testcases with various combinations of $ " \

2 years agoSupport expanding Eshell globs for remote file names
Jim Porter [Wed, 6 Mar 2024 21:27:07 +0000 (13:27 -0800)]
Support expanding Eshell globs for remote file names

* lisp/eshell/em-glob.el (eshell-glob-chars-regexp): New function...
(eshell-glob-regexp): ... use it.
(eshell-glob-p): New function...
(eshell-glob-convert): ... use it, and return the deepest start
directory possible.

* lisp/eshell/esh-util.el (eshell-split-path): Rename to...
(eshell-split-path): ... this, and account for remote file names.

* test/lisp/eshell/em-glob-tests.el
(em-glob-test/convert/current-start-directory)
(em-glob-test/convert/relative-start-directory)
(em-glob-test/convert/absolute-start-directory)
(em-glob-test/convert/remote-start-directory): New tests (bug#69592).

2 years ago; * test/lisp/net/eww-tests.el (eww-test--response-function): Fix typo.
Jim Porter [Thu, 7 Mar 2024 20:19:28 +0000 (12:19 -0800)]
; * test/lisp/net/eww-tests.el (eww-test--response-function): Fix typo.

2 years agoRevert "Suppress docstring control char warning in macro-generated function"
Mattias Engdegård [Thu, 7 Mar 2024 13:29:36 +0000 (14:29 +0100)]
Revert "Suppress docstring control char warning in macro-generated function"

This reverts commit eeb89a5cb292bffe40ba7d0b0cf81f82f8452bf8.
It is no longer needed now that (lambda (...) "string") does not
have a doc string (bug#69387).

2 years agoSingle string literal in body is return value only, not doc string
Mattias Engdegård [Wed, 6 Mar 2024 11:03:06 +0000 (12:03 +0100)]
Single string literal in body is return value only, not doc string

A function or macro body consisting of a single string literal now only
uses it as a return value.  Previously, it had the dual uses as return
value and doc string, which was never what the programmer wanted and
had some inconvenient consequences (bug#69387).

This change applies to `lambda`, `defun`, `defsubst` and `defmacro`
forms; most other defining forms already worked in the sensible way.

* lisp/emacs-lisp/bytecomp.el (byte-compile-lambda):
Don't use a lone string literal as doc string.
* test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-defun.el
(foo): Update docstring warning test.
* doc/lispref/functions.texi (Function Documentation): Update.
* etc/NEWS: Announce.

2 years ago; Improve documentation of image properties
Eli Zaretskii [Thu, 7 Mar 2024 08:11:44 +0000 (10:11 +0200)]
; Improve documentation of image properties

* lisp/image.el (create-image, image-property): Add to do strings
link to description of image properties in ELisp manual.

* doc/lispref/display.texi (Defining Images): Fix example and add
cross-reference to where image properties are described.
(Image Descriptors): Add index entry.

2 years ago* lisp/follow.el: Put property 'isearch-scroll' on 'follow-recenter'.
Juri Linkov [Thu, 7 Mar 2024 07:56:02 +0000 (09:56 +0200)]
* lisp/follow.el: Put property 'isearch-scroll' on 'follow-recenter'.

2 years agoWhen navigating through history in EWW, don't keep adding to 'eww-history'
Jim Porter [Sun, 18 Feb 2024 04:49:15 +0000 (20:49 -0800)]
When navigating through history in EWW, don't keep adding to 'eww-history'

This resolves an issue where navigating back and then forward kept
adding new history entries so you could never hit the "end" (bug#69232).

* lisp/net/eww.el (eww-before-browse-history-function): New option.
(eww-history-position): Add docstring.
(eww-mode-map, eww-context-menu): Use correct predicates for when to
enable back/forward.
(eww-save-history): Save history entry in its original place when
viewing a historical page.
(eww--before-browse): New function...
(eww, eww-follow-link, eww-readable): ... call it.
(eww-render): Don't set 'eww-history-position' here...
(eww--before-browse): ... instead, set it here.
(eww-back-url): Set 'eww-history-position' based on the result of
'eww-save-history'.
(eww-forward-url): Set 'eww-history-position' directly, since
'eww-save-history' no longer adds a new entry in this case.
(eww-delete-future-history, eww-clone-previous-history): New functions.

* test/lisp/net/eww-tests.el: New file.

* etc/NEWS: Announce this change.

2 years agoTramp fixes after running regression tests on Android
Michael Albinus [Wed, 6 Mar 2024 16:51:42 +0000 (17:51 +0100)]
Tramp fixes after running regression tests on Android

* lisp/net/tramp-adb.el (tramp-adb-maybe-open-connection):
Unset environment variable PS2.

* lisp/net/tramp-androidsu.el (tramp-default-host-alist):
Don't add an entry; `tramp-default-host' is set properly.
(tramp-androidsu-maybe-open-connection): Don't set connection
property "remote-namespace" to nil, this is the default anyway.
Don't set connection property "remote-path", we use
connection-local values instead.  Unset environment variable PS2.
Dump shell options after setting all of them.
(tramp-androidsu-handle-make-process): Don't use hard-coded user "root".
(tramp-androidsu-connection-local-default-variables): New defvar.
Add it to connection-local profiles.

2 years agoRename type_hierarchy.* -> elisp_type_hierarchy.*
Andrea Corallo [Wed, 6 Mar 2024 15:43:45 +0000 (16:43 +0100)]
Rename type_hierarchy.* -> elisp_type_hierarchy.*

* doc/lispref/elisp_type_hierarchy.txt: Renamed.
* doc/lispref/elisp_type_hierarchy.jpg: Likewise.
* doc/lispref/Makefile.in (auxfiles)
($(buildinfodir)/elisp_type_hierarchy.txt)
($(buildinfodir)/elisp_type_hierarchy.jpg): Update.
* admin/syncdoc-type-hierarchy.el (syncdoc-update-type-hierarchy0): Likewise.
* Makefile.in (install-info, uninstall): Likewise.

2 years agoRe-generate type_hierarchy.*
Andrea Corallo [Wed, 6 Mar 2024 14:50:33 +0000 (15:50 +0100)]
Re-generate type_hierarchy.*

* doc/lispref/type_hierarchy.txt: Update.
* doc/lispref/type_hierarchy.jpg: Likewise.

2 years ago* Update syncdoc to dump all preloaded type hierarchy
Andrea Corallo [Wed, 6 Mar 2024 14:41:37 +0000 (15:41 +0100)]
* Update syncdoc to dump all preloaded type hierarchy

* admin/syncdoc-type-hierarchy.el (syncdoc-file)
(syncdoc-emacs-repo-dir): New constants.
(syncdoc-lispref-dir): Make use of.
(syncdoc-all-types): New function.
(comp--direct-supertypes): Declare.
(syncdoc-hierarchy): Update.
(syncdoc-update-type-hierarchy0): Rename from
'syncdoc-update-type-hierarchy' and make non interactive.
(syncdoc-update-type-hierarchy): New function.

2 years agoDon't report files from read-only adb partitions as writable
Po Lu [Wed, 6 Mar 2024 02:48:28 +0000 (10:48 +0800)]
Don't report files from read-only adb partitions as writable

* lisp/net/tramp-adb.el (tramp-adb-handle-file-writable-p):
Ignore the file-attributes cache, since file mode is not a
reliable indicator of writability.

2 years ago; Fix last change
Po Lu [Wed, 6 Mar 2024 02:20:36 +0000 (10:20 +0800)]
; Fix last change

* lisp/net/tramp-androidsu.el
(tramp-androidsu-generate-wrapper): Arguments to fset must be
symbols rather than functions.

2 years ago* Makefile.in (install-info): Fix target (bug#69569).
Vincenzo Pupillo [Tue, 5 Mar 2024 21:36:34 +0000 (22:36 +0100)]
* Makefile.in (install-info): Fix target (bug#69569).

2 years ago; * etc/NEWS: Fix wording and punctuation of a recently added entry.
Eli Zaretskii [Tue, 5 Mar 2024 17:32:29 +0000 (19:32 +0200)]
; * etc/NEWS: Fix wording and punctuation of a recently added entry.

2 years ago* lisp/tab-bar.el (tab-bar-tab-post-select-functions): New hook (bug#69093).
Juri Linkov [Tue, 5 Mar 2024 17:14:28 +0000 (19:14 +0200)]
* lisp/tab-bar.el (tab-bar-tab-post-select-functions): New hook (bug#69093).

(tab-bar-select-tab): Call tab-bar-tab-post-select-functions at the end.

2 years agoNew property 'context-menu-functions' (bug#62250)
Juri Linkov [Tue, 5 Mar 2024 16:50:51 +0000 (18:50 +0200)]
New property 'context-menu-functions' (bug#62250)

* lisp/iimage.el (iimage-mode-buffer): Set context-menu-functions
text property to '(image-context-menu)'.

* lisp/image.el (image-context-menu): New function.
(put-image): Set context-menu-functions overlay property
to '(image-context-menu)'.
(insert-image, insert-sliced-image): Set context-menu-functions
text property to '(image-context-menu)'.

* lisp/mouse.el (context-menu-map): Use mouse-posn-property
'context-menu-functions' and call its funs at the end.

2 years ago* lisp/net/dictionary.el: More fixes for dictionary-new-matching (bug#69312)
Juri Linkov [Tue, 5 Mar 2024 16:42:49 +0000 (18:42 +0200)]
* lisp/net/dictionary.el: More fixes for dictionary-new-matching (bug#69312)

(dictionary-new-matching): Change the order of standard calls
to be the same as in 'dictionary-new-search'.
Use new function 'dictionary-new-matching-internal'.
(dictionary-new-matching-internal): New function based on
'dictionary-new-search-internal'.

2 years ago* Makefile.in (uninstall): Clean-up type_hierarchy* files.
Andrea Corallo [Tue, 5 Mar 2024 14:21:44 +0000 (15:21 +0100)]
* Makefile.in (uninstall): Clean-up type_hierarchy* files.

2 years ago* Makefile.in (install-info): Install type_hierarchy* files as well.
Andrea Corallo [Tue, 5 Mar 2024 14:07:05 +0000 (15:07 +0100)]
* Makefile.in (install-info): Install type_hierarchy* files as well.

2 years ago* Copy type hierarchy representation to the info dir
Andrea Corallo [Tue, 5 Mar 2024 10:48:08 +0000 (11:48 +0100)]
* Copy type hierarchy representation to the info dir

* doc/lispref/Makefile.in (auxfiles)
($(buildinfodir)/type_hierarchy.txt)
($(buildinfodir)/type_hierarchy.jpg): New targets.
($(buildinfodir)/elisp.info): Add dependecy.

2 years agoAdapt tramp.texi
Michael Albinus [Tue, 5 Mar 2024 10:17:48 +0000 (11:17 +0100)]
Adapt tramp.texi

* doc/misc/tramp.texi (Quick Start Guide): Add androidsu.
(Inline methods): Make androidsu an own item.

2 years agodisass.el (disassemble-1): Minor simplification
Stefan Monnier [Tue, 5 Mar 2024 04:42:50 +0000 (23:42 -0500)]
disass.el (disassemble-1): Minor simplification

* lisp/emacs-lisp/disass.el (disassemble-1): Remove code for functions
of the form (lambda ARGS (byte-code ...)) which we don't use any
more nowadays.

2 years agocl-preloaded.el: Further fine-tuning
Stefan Monnier [Tue, 5 Mar 2024 04:12:29 +0000 (23:12 -0500)]
cl-preloaded.el: Further fine-tuning

* lisp/emacs-lisp/cl-preloaded.el (cl--direct-supertypes-of-type):
Fix some left over issues:
- Remove redundant `number-or-marker` from `marker`s parents.
- Add `function` to the types, since it was missing.
(cl--typeof-types): Add a warning for missing type info.

* admin/syncdoc-type-hierarchy.el (syncdoc-hierarchy): Fix parent of
`oclosure`.

* doc/lispref/type_hierarchy.txt:
* doc/lispref/type_hierarchy.jpg: Update.

2 years agoRearrange Android splash screen messages
Po Lu [Tue, 5 Mar 2024 03:23:27 +0000 (11:23 +0800)]
Rearrange Android splash screen messages

* lisp/startup.el (fancy-startup-tail, fancy-startup-screen)
(normal-splash-screen): Adjust for function renaming; move the
storage permissions notice to the top of the splash screen.

* lisp/term/android-win.el (android-after-splash-screen): Rename
from android-before-splash-screen and adjust layout lightly.

* src/android.c (android_wc_lookup_string): Terminate character
composition after a character is returned, whether it contain a
Unicode character or not.

2 years agosyncdoc-type-hierarchy.el: Adjust to changes in `cl-preloaded.el`
Stefan Monnier [Mon, 4 Mar 2024 18:24:34 +0000 (13:24 -0500)]
syncdoc-type-hierarchy.el: Adjust to changes in `cl-preloaded.el`

* admin/syncdoc-type-hierarchy.el (syncdoc-lispref-dir):
Use `macroexp-file-name`.
(syncdoc-hierarchy): New var.
(syncdoc-insert-dot-content, syncdoc-make-type-table): Use it.
(syncdoc-update-type-hierarchy): Don't crash if `dot` is absent.

2 years agoadmin/syncdoc-type-hierarchy.el: Move from `etc`
Stefan Monnier [Mon, 4 Mar 2024 17:02:45 +0000 (12:02 -0500)]
admin/syncdoc-type-hierarchy.el: Move from `etc`

AFAICT `admin` is where we keep these kinds of files.

2 years agoRevert "Update some native comp tests"
Stefan Monnier [Mon, 4 Mar 2024 16:19:08 +0000 (11:19 -0500)]
Revert "Update some native comp tests"

This reverts commit 4a0d430bdc3650ca3dfd8bdd14781764fbcbdc7e.

AFAICT that commit was made to accomodate regressions introduced
in the new `cl-preloaded.el` code and these have been fixed.

2 years ago; * src/composite.c (composition_compute_stop_pos): Add comment.
Eli Zaretskii [Mon, 4 Mar 2024 15:09:29 +0000 (17:09 +0200)]
; * src/composite.c (composition_compute_stop_pos): Add comment.

2 years agotramp-androidsu.el code cleanup
Michael Albinus [Mon, 4 Mar 2024 14:44:24 +0000 (15:44 +0100)]
tramp-androidsu.el code cleanup

* lisp/net/tramp-androidsu.el (tramp-androidsu-generate-wrapper):
Prefer #' notation for function names.
(tramp-androidsu-handle-copy-file)
(tramp-androidsu-handle-file-local-copy)
(tramp-androidsu-handle-make-symbolic-link)
(tramp-androidsu-handle-rename-file)
(tramp-androidsu-handle-write-region): Don't use a wrapper.
(tramp-adb-connection-local-default-ps-profile): Don't initialize,
this happens in tramp-db.el.

2 years agoRevert "Replace XSETSYMBOL with make_lisp_symbol"
Mattias Engdegård [Mon, 4 Mar 2024 13:14:05 +0000 (14:14 +0100)]
Revert "Replace XSETSYMBOL with make_lisp_symbol"

This reverts commit de6b1e1efb1a36c69e7a6e09297e1de5b1477121.

While it did simplify code, there aren't much in the way of technical
benefits the change at this time, and there were protest against the
unwarranted style change.

2 years agoRepair miscompilation of single-arg `apply` (bug#69533)
Mattias Engdegård [Mon, 4 Mar 2024 09:44:19 +0000 (10:44 +0100)]
Repair miscompilation of single-arg `apply` (bug#69533)

* lisp/emacs-lisp/byte-opt.el (byte-optimize-apply):
Don't optimise single-argument `apply`; it's a legacy construct.
* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases):
Add test case.

2 years ago; * lisp/vc/diff-mode.el (diff--refine-hunk): Escape literal `+`.
Mattias Engdegård [Sun, 3 Mar 2024 14:55:30 +0000 (15:55 +0100)]
; * lisp/vc/diff-mode.el (diff--refine-hunk): Escape literal `+`.

2 years ago; * etc/NEWS: add missing definite article
Mattias Engdegård [Tue, 27 Feb 2024 11:31:57 +0000 (12:31 +0100)]
; * etc/NEWS: add missing definite article

2 years agoAvoid crashes due to base-less indirect buffer
Eli Zaretskii [Mon, 4 Mar 2024 12:59:27 +0000 (14:59 +0200)]
Avoid crashes due to base-less indirect buffer

* src/buffer.c (Fkill_buffer): Prevent killing a buffer if its
indirect buffer refuses to be killed.  (Bug#69529)

2 years agoFix 'set-window-configuration' and 'window-state-put'
Martin Rudalics [Mon, 4 Mar 2024 09:33:49 +0000 (10:33 +0100)]
Fix 'set-window-configuration' and 'window-state-put'

Fix some bugs with 'window-state-put' (Bug#69093).  Add new
hook 'window-kept-windows-functions' (Bug#68235).

* doc/lispref/windows.texi (Window Configurations): Mention
'window-kept-windows-functions'.
(Window Hooks): Describe new abnormal hook
'window-kept-windows-functions'.
* src/marker.c (Fmarker_last_position): New function to return
the last position of a marker even if its buffer is now dead.
* src/window.c (Fset_window_configuration): If
'window-kept-windows-functions' is non-nil, do not delete any
window whose buffer is now dead but remember all such windows in
a list to pass to 'window-kept-windows-functions'.  Run
'window-kept-windows-functions' if it is non-nil.
(Vwindow_kept_windows_functions): New abnormal hook run by
Fset_window_configuration and 'window-state-put' with two
arguments - the frame whose configuration is restored and a list
of entries for each window whose buffer was found dead during
restoration.  Each entry is a list of four elements, the window,
the dead buffer, and the last know positions of the start and
point of that window.
* lisp/window.el (window-state-put-kept-windows)
(window-state-put-selected-window): New variables.
(window--state-put-2): Make sure buffer is live before restoring
its state.  Set 'window-state-put-selected-window' to state's
selected window.  If 'window-kept-windows-functions' is non-nil,
do not delete any windows whose buffer is found dead but
remember all such windows in a list to pass to
'window-kept-windows-functions'.
(window-state-put): Run 'window-kept-windows-functions' if it is
non-nil.  Select window recorded in
'window-state-put-selected-window'.

2 years ago; Fix last major-mode-remap-defaults change.
Basil L. Contovounesios [Mon, 4 Mar 2024 06:19:22 +0000 (07:19 +0100)]
; Fix last major-mode-remap-defaults change.

2 years ago(major-mode-remap(-defaults)): New var and function (bug#69191)
Stefan Monnier [Mon, 4 Mar 2024 04:08:16 +0000 (23:08 -0500)]
(major-mode-remap(-defaults)): New var and function (bug#69191)

While `major-mode-remap-alist` provides a way for users to indicate the
major mode of their choice, we need a similar variable for the
use of packages.

This patch adds a new `major-mode-remap-defaults` and changes various
packages to obey it or make use of it.
I think it nicely cleans the regexp duplication between CC-mode and
`c-ts-mode.el` and also makes it easier/cleaner for users to override
the changes made by `*-ts-mode.el`.

* lisp/files.el (major-mode-remap-defaults): New variable.
(major-mode-remap): New function.
(set-auto-mode-0): Use it.
* doc/lispref/modes.texi (Auto Major Mode): Document them.

* lisp/textmodes/tex-mode.el (tex--redirect-to-submode):
Use `major-mode-remap`.
(major-mode-remap-defaults): Set it to remap AUCTeX modes by default.
* lisp/progmodes/ruby-ts-mode.el (auto-mode-alist): Leave it alone.
(major-mode-remap-defaults): Set this one instead.
* lisp/progmodes/c-ts-mode.el (c-or-c++-ts-mode): Use `major-mode-remap`.
(auto-mode-alist): Leave it alone.
(major-mode-remap-defaults): Set this one instead.
* lisp/org/ox.el (org-export-to-buffer): Modernize docstring accordingly.
* lisp/progmodes/cc-mode.el (c-or-c++-mode):
* lisp/org/ox-latex.el (org-latex-export-as-latex):
* lisp/org/ox-koma-letter.el (org-koma-letter-export-as-latex):
* lisp/org/ox-beamer.el (org-beamer-export-as-latex):
Use `major-mode-remap` when available.

2 years agoUpdate tramp-androidsu
Po Lu [Mon, 4 Mar 2024 03:21:53 +0000 (11:21 +0800)]
Update tramp-androidsu

* doc/misc/tramp.texi (Quick Start Guide): Remove documentation
pertaining to tramp-androidsu.el.
(Inline methods): Document it here instead.

* lisp/net/tramp-androidsu.el
(tramp-androidsu-mount-global-namespace)
(tramp-androidsu-remote-path, tramp-androidsu-local-shell-name)
(tramp-androidsu-local-tmp-directory, add-to-list)
(tramp-androidsu-maybe-open-connection)
(tramp-androidsu-handle-access-file)
(tramp-androidsu-handle-add-name-to-file)
(tramp-androidsu-handle-copy-directory)
(tramp-androidsu-sh-handle-copy-file)
(tramp-androidsu-handle-copy-file)
(tramp-androidsu-adb-handle-delete-directory)
(tramp-androidsu-handle-delete-directory)
(tramp-androidsu-adb-handle-delete-file)
(tramp-androidsu-handle-delete-file)
(tramp-androidsu-handle-directory-file-name)
(tramp-androidsu-handle-directory-files)
(tramp-androidsu-adb-handle-directory-files-and-attributes)
(tramp-androidsu-handle-directory-files-and-attributes)
(tramp-androidsu-handle-dired-uncache)
(tramp-androidsu-adb-handle-exec-path)
(tramp-androidsu-handle-exec-path)
(tramp-androidsu-handle-expand-file-name)
(tramp-androidsu-handle-file-accessible-directory-p)
(tramp-androidsu-adb-handle-file-attributes)
(tramp-androidsu-handle-file-attributes)
(tramp-androidsu-handle-file-directory-p)
(tramp-androidsu-handle-file-equal-p)
(tramp-androidsu-adb-handle-file-executable-p)
(tramp-androidsu-handle-file-executable-p)
(tramp-androidsu-adb-handle-file-exists-p)
(tramp-androidsu-handle-file-exists-p)
(tramp-androidsu-handle-file-group-gid)
(tramp-androidsu-handle-file-in-directory-p)
(tramp-androidsu-sh-handle-file-local-copy)
(tramp-androidsu-handle-file-local-copy)
(tramp-androidsu-handle-file-locked-p)
(tramp-androidsu-handle-file-modes)
(tramp-androidsu-adb-handle-file-name-all-completions)
(tramp-androidsu-handle-file-name-all-completions)
(tramp-androidsu-handle-file-name-as-directory)
(tramp-androidsu-handle-file-name-case-insensitive-p)
(tramp-androidsu-handle-file-name-completion)
(tramp-androidsu-handle-file-name-directory)
(tramp-androidsu-handle-file-name-nondirectory)
(tramp-androidsu-handle-file-newer-than-file-p)
(tramp-androidsu-handle-file-notify-add-watch)
(tramp-androidsu-handle-file-notify-rm-watch)
(tramp-androidsu-handle-file-notify-valid-p)
(tramp-androidsu-adb-handle-file-readable-p)
(tramp-androidsu-handle-file-readable-p)
(tramp-androidsu-handle-file-regular-p)
(tramp-androidsu-handle-file-remote-p)
(tramp-androidsu-handle-file-selinux-context)
(tramp-androidsu-handle-file-symlink-p)
(tramp-androidsu-adb-handle-file-system-info)
(tramp-androidsu-handle-file-system-info)
(tramp-androidsu-handle-file-truename)
(tramp-androidsu-handle-file-user-uid)
(tramp-androidsu-adb-handle-file-writable-p)
(tramp-androidsu-handle-file-writable-p)
(tramp-androidsu-handle-find-backup-file-name)
(tramp-androidsu-handle-insert-directory)
(tramp-androidsu-handle-insert-file-contents)
(tramp-androidsu-handle-list-system-processes)
(tramp-androidsu-handle-load, tramp-androidsu-handle-lock-file)
(tramp-androidsu-handle-make-auto-save-file-name)
(tramp-androidsu-adb-handle-make-directory)
(tramp-androidsu-handle-make-directory)
(tramp-androidsu-handle-make-lock-file-name)
(tramp-androidsu-handle-make-nearby-temp-file)
(tramp-androidsu-make-process)
(tramp-androidsu-sh-handle-make-symbolic-link)
(tramp-androidsu-handle-make-symbolic-link)
(tramp-androidsu-handle-memory-info)
(tramp-androidsu-handle-process-attributes)
(tramp-androidsu-adb-handle-process-file)
(tramp-androidsu-handle-process-file)
(tramp-androidsu-sh-handle-rename-file)
(tramp-androidsu-handle-rename-file)
(tramp-androidsu-adb-handle-set-file-modes)
(tramp-androidsu-handle-set-file-modes)
(tramp-androidsu-adb-handle-set-file-times)
(tramp-androidsu-handle-set-file-times)
(tramp-androidsu-handle-set-visited-file-modtime)
(tramp-androidsu-handle-shell-command)
(tramp-androidsu-handle-start-file-process)
(tramp-androidsu-handle-substitute-in-file-name)
(tramp-androidsu-handle-temporary-file-directory)
(tramp-androidsu-adb-handle-get-remote-gid)
(tramp-androidsu-handle-get-remote-gid)
(tramp-androidsu-adb-handle-get-remote-groups)
(tramp-androidsu-handle-get-remote-groups)
(tramp-androidsu-adb-handle-get-remote-uid)
(tramp-androidsu-handle-get-remote-uid)
(tramp-androidsu-handle-unlock-file)
(tramp-androidsu-handle-verify-visited-file-modtime)
(tramp-androidsu-sh-handle-write-region)
(tramp-androidsu-handle-write-region)
(tramp-androidsu-file-name-handler-alist): Make hard-coded
executable and file names defconsts, remove redundant wrapper
functions and remove names of wrapped functions from their
wrappers.

2 years agoRevert "ox-texinfo:: Require only TEXINFO_DIR_CATEGORY"
Stefan Monnier [Mon, 4 Mar 2024 03:09:24 +0000 (22:09 -0500)]
Revert "ox-texinfo:: Require only TEXINFO_DIR_CATEGORY"

This reverts commit 5254c582efb3e7171e955dde653e7530d2d3ffef.

2 years agoRevert "Set org-macro-templates more lazily"
Stefan Monnier [Mon, 4 Mar 2024 03:09:19 +0000 (22:09 -0500)]
Revert "Set org-macro-templates more lazily"

This reverts commit 99483e214fdafa76e8001c7009dff13a76c33f32.

2 years ago(cl--typeof-types): Rework to fix some regressions
Stefan Monnier [Sun, 3 Mar 2024 23:08:50 +0000 (18:08 -0500)]
(cl--typeof-types): Rework to fix some regressions

Initialize the variables directly in their declaration, so
there no time where they exist but aren't yet initialized.
This also allows us to mark `cl--typeof-types` as a `defconst` again.

More importantly, specify the DAG by direct supertypes rather
than direct subtypes.  This is slightly less compact, but it's
necessary to let us specify the *order* of the supertypes,
which is necessary for example to preserve the desired ordering
of methods when several methods can be applied.

Fix a few more regressions, such as removing `atom` from the parents
of `function` since some lists are considered as functions,
adding `number-or-marker` as supertype of `integer-or-marker`,
and re-adding `native-comp-unit`.

I carefully compared all elements of `cl--typeof-types` to make
sure they are the same as before (with one exception for `null`).

* lisp/emacs-lisp/cl-preloaded.el (cl--type-hierarchy): Delete var.
(cl--direct-supertypes-of-type, cl--typeof-types):
Initialize directly in the declaration.
(cl--supertypes-lane, cl--supertypes-lanes-res): Delete vars.
(cl--supertypes-for-typeof-types-rec)
(cl--supertypes-for-typeof-types): Delete functions.

2 years agoSet org-macro-templates more lazily
Stefan Monnier [Sat, 2 Mar 2024 20:23:17 +0000 (15:23 -0500)]
Set org-macro-templates more lazily

2 years agoox-texinfo:: Require only TEXINFO_DIR_CATEGORY
Stefan Monnier [Sat, 2 Mar 2024 19:48:29 +0000 (14:48 -0500)]
ox-texinfo:: Require only TEXINFO_DIR_CATEGORY

Until now @dircategory/@direntry entries were added only if
both TEXINFO_DIR_CATEGORY and TEXINFO_DIR_TITLE were set.
And the setting of TEXINFO_DIR_TITLE had to be careful to
provide exactly the right syntax.

This patch changes various things in this regard:
- Only require TEXINFO_DIR_CATEGORY in order to generate
  `@dircategory` and `@direntry`.
- Use the document title by default if TEXINFO_DIR_DESC is missing.
- Use the filename by default when TEXINFO_DIR_TITLE is missing.
- Try and make it harder to provide a direntry that does not
  have the right format or refers to a different filename than
  the one we're outputting to.

* lisp/org/ox-texinfo.el: Remove redundant `:group` arguments.
Prefer #' to quote function names.
(org-texinfo-template): Use sane defaults for `@direntry`.

* doc/misc/org.org (Texinfo specific export settings): Adjust accordingly.

2 years ago* lisp/net/dictionary.el (dictionary-display-match-result): More fixes.
Juri Linkov [Sun, 3 Mar 2024 17:49:36 +0000 (19:49 +0200)]
* lisp/net/dictionary.el (dictionary-display-match-result): More fixes.

Remove 'dictionary-pre-buffer' that was moved to
'dictionary-new-matching' in the previous commit (bug#69312).

2 years ago* lisp/net/dictionary.el (dictionary-new-matching): Add dictionary-pre-buffer.
Juri Linkov [Sun, 3 Mar 2024 16:58:47 +0000 (18:58 +0200)]
* lisp/net/dictionary.el (dictionary-new-matching): Add dictionary-pre-buffer.

This is necessary to prepare the dictionary buffer for further processing
that also includes setting buffer-read-only to nil to be able to insert text.
(bug#69312)